import { createRouter, createWebHashHistory } from 'vue-router'
import { routes } from './routes'
// import { getToken } from '@/utils/token-utils'
import useUserStore from '@/store/userInfo'
import { showSuccessToast } from 'vant/lib/toast'

// 重写replace和redirect
// import './extendApi.js'
// 创建路由示例
const router = createRouter({
  // 路由模式history路由
  history: createWebHashHistory(),

  routes,

  // 处理路由的滚动行为，进入一个新页面，都会始终滚动到页面顶部
  scrollBehavior() {
    return { top: 0, left: 0 }
  }
})

// 全局导航守卫鉴权
router.beforeEach((to, from, next) => {
  // 去交易页面的时候需要登录了才能进去
  const whiteList = ['/pay', '/paying']
  const userStore = useUserStore()
  // 先判断本地是否有token
  const token = userStore.token
  if (token) {
    // 有token
    // 1.查看本地是否有用户信息
    const id = userStore.userInfo.userId
    if (id) {
      // 有用户信息放行
      next()
    } else {
      // 没有用户信息获取用户信息
      // 获取用户信息
      try {
        userStore.getUserInfo()
        // 获取成功
        next()
      } catch (error) {
        showSuccessToast('获取用户信息失败')
        userStore.logOut()
        next('/login')
      }
    }
  } else {
    if (whiteList.includes(to.path)) {
      next('/login')
    }
    // 直接放行
    next()
  }
})

export default router
